package com.ydlclass.transport.message;


import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;

import java.io.Serializable;

/**
 * 用来描述请求调用方所请求的接口方法的描述
 */
@Builder
@Slf4j
@NoArgsConstructor
@AllArgsConstructor
@Data
public class RequestPayload implements Serializable {
    // 1.接口的名字 -- com.ydlclass.HelloYrpc
    private String interfaceName;

    // 2.方法的名字 -- sayHi
    private String methodName;

    // 3.参数类型，参数分为参数类型和具体的参数
    // 参数类型用来确定重载方法，具体的参数用来方法调用
    private Class<?>[] parametersType;  // -- {java.long.String}
    private Object[] parametersValue;   // -- "你好"

    // 4.返回值的封装 -- {java.long.String}
    private Class<?> returnType;

}
